Many organizations rely on a heterogeneous set of applications to deliver critical services to their customers and partners. This set of applications includes web workloads typically hosted on a collection of clustered application servers and a back-end tier database. The application mix also includes non-interactive workloads such as portfolio analysis, document indexing, and various types of scientific computations. To efficiently utilize the computing power of their datacenters, organizations allow these heterogeneous workloads to execute on the same set of hardware resources and need a resource management technology to determine the most effective allocation of resources to particular workloads.
A traditional approach to resource management for heterogeneous workloads is to configure resource allocation policies that govern the division of computing power among web and non-interactive workloads based on temporal or resource utilization conditions. With a temporal policy, the resource reservation for web workloads varies between peak and off-peak hours. Resource utilization policies allow non-interactive workload to be executed when resource consumption by web workload falls below a certain threshold. Typically, resource allocation is performed with a granularity of a full server machine, as it is difficult to configure and enforce policies that allow server machines to be shared among workloads. Coarse-grained resource management based on temporal or resource utilization policies has previously been automated. See, K. Appleby et al., “Oceano—SLA-Based Management of a Computing Utility,” IFIP/IEEE Symposium on Integrated Network Management, Seattle, Wash., May 2001; and Y. Hamadi, “Continuous Resources Allocation in Internet Data Centers,” IEEE/ACM International Symposium on Cluster Computing and the Grid, Cardiff, UK, May 2005, pp. 566-573.
Once server machines are assigned to either the web or the non-interactive workload, existing resource management policies can be used to manage individual web and non-interactive applications. In the case of web workloads, these management techniques involve flow control and dynamic application placement. See, C. Li et al., “Performance Guarantees for Cluster-Based Internet Services,” IEEE/ACM International Symposium on Cluster Computing and the Grid, Tokyo, Japan, May 2003; G. Pacifici et al., “Performance Management for Cluster-Based Web Services,” IEEE Journal on Selected Areas in Communications, Vol. 23, No. 12, December 2005; and A. Karve et al., “Dynamic Placement for Clustered Web Applications,” World Wide Web Conference, Edinburgh, Scotland, May 2006. In the case of non-interactive workloads, the techniques involve job scheduling, which may be performed based on various existing scheduling disciplines. See, D. Feitelson et al., “Parallel Job Scheduling—a Status Report,” 10th Workshop on Job Scheduling Strategies for Parallel Processing, 2004, pp. 1-16. To effectively manage heterogeneous workloads, a solution is needed that combines flow control and dynamic placement techniques with job scheduling.